package br.com.fogas.notafiscal.condicoes.zfd1;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import br.com.fogas.database.FogasDatabase;
import br.com.fogas.database.entidade.NotaFiscal;
import br.com.fogas.database.entidade.NotaItem;
import br.com.fogas.database.entidade.NotaItemCondicoes;
import br.com.fogas.database.exception.CondicoesPrecoException;
import br.com.fogas.notafiscal.enums.CondicoesEnum;
import br.com.fogas.notafiscal.modelo.NFItem;

public class CondicaoZFD1 {
	
	private FogasDatabase database;
	
	private String condicao, material;
	
	private NotaFiscal notaFiscal;
	
	private NotaItem notaItem;
	
	private boolean granel;
	
	public CondicaoZFD1(FogasDatabase database, NFItem item) {
		this.database = database;
		this.condicao = CondicoesEnum.ZFD1.getCodigo();
		this.granel = item.isGranel();
		this.material = item.getMaterial().getTx_cod_material();
		this.notaFiscal = item.getNotaItem().getTx_nota_fiscal();
		this.notaItem = item.getNotaItem();
	}
	
	public List<NotaItemCondicoes> getCondicoes() throws CondicoesPrecoException {
		String cliente = notaFiscal.getTx_cod_cliente().getTx_cod_cliente();
		Date dataPedido = notaFiscal.getDt_nota();
		
		if(granel) {
			A965_ZFD1 a965 = new A965_ZFD1(database, notaItem, condicao, dataPedido, material, cliente);
			A952_ZFD1 a952 = new A952_ZFD1(database, notaItem, condicao, dataPedido, material, cliente);
			
			a965.setProxima(a952);
			
			return a965.atende(new ArrayList<NotaItemCondicoes>());
		} else {
			return new ArrayList<NotaItemCondicoes>();
		}
	}
}
